<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <script>

        

        // 同时包含数字小写大写
        // 取一个数字   numArr 取一个
        // 取一个小写   smallArr 取一个
        // 取一个大写   bigArr 取一个
        // 剩下的 n-3   allArr 取


        // 交换
        // 随机一个数   拿第一个与他交换
        // 随机一个数   拿第二个与他交换
        // 随机一个数   拿第三个与他交换


        var numArr = [];
        for (var i = 0; i <= 9; i++) {
            // 数字转字符串
            numArr.push(i + '');
        }

        var smallArr = [] ;
        for(var i = 97 ; i <= 122 ; i++) {
            smallArr.push(String.fromCharCode(i)) ;
        }

        var bigArr = [] ;
        for(var i = 65 ; i <= 90 ; i++) {
            bigArr.push(String.fromCharCode(i)) ;
        }

        var allArr = numArr.concat(smallArr , bigArr) ;
        console.log(allArr) ;

        var n = 5 ;

        var res = [] ;
        res.push(numArr[rand(0,numArr.length)]) ;
        res.push(smallArr[rand(0,smallArr.length)]) ;
        res.push(bigArr[rand(0,bigArr.length)]) ;
        for(var i = 0 ; i < n - 3 ; i++) {
            res.push(allArr[rand(0,allArr.length)]) ;
        }

        console.log(res) ;


        // 每一个位置上的值都进行交换






        // 交换
                // 随机一个数   拿第一个与他交换
                // 随机一个数   拿第二个与他交换
                // 随机一个数   拿第三个与他交换

        // var j = rand(0,n) ;   // 随机一个位置
        // // 那第一个位置上的值与第j个位置进行交换
        // var t = arr[0] ;
        // arr[0] = arr[j] ;
        // arr[j] = t ;


        // var j = rand(0,n) ;   // 随机一个位置
        // // 那第2个位置上的值与第j个位置进行交换
        // var t = arr[1] ;
        // arr[1] = arr[j] ;
        // arr[j] = t ;


        // var j = rand(0,n) ;   // 随机一个位置
        // // 那第一个位置上的值与第j个位置进行交换
        // var t = arr[2] ;
        // arr[2] = arr[j] ;
        // arr[j] = t ;




        for(var i = 0 ; i < n ; i++) {
            var j = rand(0,n) ;
            var t = res[j] ;
            res[j] = res[i] ;
            res[i] = t ;
        }
        console.log(res) ;

        console.log(res.join(''))












        function rand(min , max) {
            return parseInt(Math.random() * (max - min) + min)
        }


    </script>
    
</body>
</html>